Final Compare Result(28/7/2012 7:15 PM)  


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Data;
using System.Web.UI.WebControls;
using WISDataLayer;
using System.Data.SqlClient;
using System.Text;
using System.Collections;

public partial class frmVariantResult1 : System.Web.UI.Page
{
    Utility clsUtility = new Utility();
    WebService2 l_objSrv;
    string g_strStructureId = string.Empty;
    string g_VCNo = string.Empty;
    string g_CHNo = string.Empty;
    private static List<string> l_objParts = new List<string>();
    private static List<string> Sam_objParts = new List<string>();
    private static DataTable Sam_Result_DT = new DataTable();
    private static DataSet l_dsColl = new DataSet();
    protected void Page_Load(object sender, EventArgs e)
    {
        grdCompareResult.Visible = false;
        grdlist.Visible = false;
        if (!IsPostBack)
        {
            WISData l_clsData = new WISData();
            //42928,42938
            //string l_strValue = "22,41,42928";
            //string[] l_strValueSplit = l_strValue.Split(',');
            //Sam_Result_DT.Columns.Add(new DataColumn("cPartNumber", typeof(string)));
            //Sam_Result_DT.Columns.Add(new DataColumn("cPartName", typeof(string)));
            //foreach (string l_srt in l_strValueSplit)
            //{
            //    Sam_Result_DT.Columns.Add("" + l_srt + " Qty", typeof(string));
            //}

            grdCompareResult.Visible = false;
            DataSet CompareVariant = new DataSet();
            String l_strValues = Request.QueryString["StrParm"];
            string[] l_strValuesSplit = l_strValues.Split('~');
            string Devision = clsUtility.Decrypt(l_strValuesSplit[0]);
            string ModelCategory = clsUtility.Decrypt(l_strValuesSplit[1]);
            string Model = clsUtility.Decrypt(l_strValuesSplit[2]);
            string Vcno = clsUtility.Decrypt(l_strValuesSplit[3]);
            string Cnno = clsUtility.Decrypt(l_strValuesSplit[4]);
            DataTable l_dtvalue = new DataTable();
            l_objSrv = new WebService2();
            l_dtvalue = l_objSrv.getCompareData(Devision, ModelCategory, Model, Vcno, Cnno);
            CompareVariant = l_clsData.get_Comparevariant_Values(Devision, ModelCategory, Model, Vcno, Cnno);
            grdCompareVariant.DataSource = l_dtvalue;
            grdCompareVariant.DataBind();
        }

    }

    public static List<string> GetPartNumber(string li_StuID)
    {
        try
        {
            WISData l_clsData = new WISData();
            DataSet l_dsPart = new DataSet();
            DataTable l_dtPartNo = new DataTable();
            l_dsPart = l_clsData.Compare_Result(li_StuID);
            l_dtPartNo = l_dsPart.Tables[0];
            DataTable l_dt = new DataTable("Table" + li_StuID.ToString());
            l_dt.Columns.Add("PartNo", typeof(string));
            l_dt.Columns.Add("PartDesc", typeof(string));
            l_dt.Columns.Add("Qty", typeof(string));
            DataSet l_dsPartValue = new DataSet();

            DataTable dt_First_StuID = new DataTable();
            DataSet ds_First_StuID = new DataSet();
            l_dsPartValue = l_clsData.Compare_Result(li_StuID);
            l_dsPartValue.Tables[0].TableName = "Table" + li_StuID.ToString();
            l_dt = l_dsPartValue.Tables[0];
            l_dsColl.Tables.Add(l_dt.Copy());
            RemoveDuplicateRows(l_dtPartNo, "cPartNumber");
            
            for (int i = 0; i < l_dtPartNo.Rows.Count; i++)
            {
                string Sam_PartNumber = l_dtPartNo.Rows[i]["cPartNumber"].ToString();
                string Sam_PartName = l_dtPartNo.Rows[i]["cPartName"].ToString();
                string Sam_Qty = l_dtPartNo.Rows[i]["Qty"].ToString();

                if (l_objParts.Contains(l_dtPartNo.Rows[i][0].ToString()) == true)
                {
                    //Sam_Result_DT.Rows.Add(Sam_PartNumber, Sam_PartName, Sam_Qty, Sam_Qty, Sam_Qty);
                    //Sam_Result_DT.Rows.Add(Sam_PartNumber, Sam_PartName);
                    Sam_Result_DT.Rows[i]["cPartNumber"] = Sam_PartNumber;
                    Sam_Result_DT.Rows[i]["cPartName"] = Sam_PartName;
                    string Column3 = li_StuID + " Qty";
                    Sam_Result_DT.Rows[i][Column3] = Sam_Qty;
                    if (Sam_Result_DT.Rows.Count > 0)
                    {
                        if (Sam_Result_DT.Rows[i][2].ToString() == "")
                        {
                            ds_First_StuID = l_clsData.Compare_Result(First_StuID);
                            dt_First_StuID = ds_First_StuID.Tables[0];
                            RemoveDuplicateRows(dt_First_StuID, "cPartNumber");
                            int dt_count = dt_First_StuID.Rows.Count;
                            if (l_objParts.Contains(dt_First_StuID.Rows[i][0].ToString()) == true)
                            {
                                string First_PartNumber = dt_First_StuID.Rows[i]["cPartNumber"].ToString();
                                string First_PartName = dt_First_StuID.Rows[i]["cPartName"].ToString();
                                string First_Qty = dt_First_StuID.Rows[i]["Qty"].ToString();
                                Sam_Result_DT.Rows[i]["cPartNumber"] = First_PartNumber;
                                Sam_Result_DT.Rows[i]["cPartName"] = First_PartName;
                                string First_Column3 = First_StuID + " Qty";
                                Sam_Result_DT.Rows[i][First_Column3] = Sam_Qty;

                            }

                        }

                    }

                }
                else
                {
                    l_objParts.Add(l_dtPartNo.Rows[i][0].ToString());
                    Sam_Result_DT.Rows.Add(Sam_PartNumber, Sam_PartName);
                   
                    string Column3 = li_StuID + " Qty";
                    Sam_Result_DT.Rows[Sam_Result_DT.Rows.Count - 1][Column3] = Sam_Qty;

                   
                    //l_dtPartNo.DefaultView.RowFilter = " cPartNumber = " + Sam_PartNumber + "";
                    //DataView l_dtFilter = l_dtPartNo.DefaultView;
                    //string l_qty = l_dtFilter[0]["Qty"].ToString();
                    //string l_StrPartName = l_dtFilter[0]["cPartName"].ToString();

                    //for (Int32 ss = 0; ss < Sam_Result_DT.Rows.Count; ss++)
                    //{
                    //    if (Sam_Result_DT.Rows[ss]["cPartNumber"].ToString() == Sam_PartNumber)
                    //    {0
                    //        string Column3 = li_StuID + " Qty";

                    //        Sam_Result_DT.Rows[ss][Column3] = l_qty;

                    //        Sam_Result_DT.Rows[i]["cPartName"] = l_StrPartName;

                    //        break;
                    //    }
                    //}
                }
            }

        }
        catch (Exception ex)
        {
        }
        return Sam_objParts;
    }

    public static DataTable RemoveDuplicateRows(DataTable dTable, string colName)
    {
        Hashtable hTable = new Hashtable();
        ArrayList duplicateList = new ArrayList();
        foreach (DataRow drow in dTable.Rows)
        {
            if (hTable.Contains(drow[colName]))
                duplicateList.Add(drow);
            else
                hTable.Add(drow[colName], string.Empty);
        }

        foreach (DataRow dRow in duplicateList)
            dTable.Rows.Remove(dRow);

        return dTable;
    }

    public static string First_StuID;
    protected void btnCompare_Click(object sender, Infragistics.WebUI.WebDataInput.ButtonEventArgs e)
    {
        string l_StructureId = string.Empty;
        string l_VCNo = string.Empty;
        string l_CHNo = string.Empty;
        for (int i = 0; i < grdCompareVariant.Rows.Count; i++)
        {
            CheckBox chkCartSelect = ((CheckBox)grdCompareVariant.Rows[i].Items.FindItemByKey("Check").FindControl("chkCartSelect"));
            if (chkCartSelect.Checked == true)
            {
                l_StructureId = grdCompareVariant.Rows[i].Items.FindItemByKey("StructureId").Value.ToString();
                l_VCNo = grdCompareVariant.Rows[i].Items.FindItemByKey("VCName").Value.ToString();
                l_CHNo = grdCompareVariant.Rows[i].Items.FindItemByKey("Chassis").Value.ToString();
                g_strStructureId = g_strStructureId + "~" + l_StructureId;
                g_VCNo = g_VCNo + "~" + l_VCNo;
                g_CHNo = g_CHNo + "~" + l_CHNo;
            }

        }
       
        g_strStructureId = g_strStructureId.Substring(1);
        //string l_strValue = "22~41~42928";
        string l_strValue = g_strStructureId;
        string[] l_strValueSplit = l_strValue.Split('~');
        Sam_Result_DT.Columns.Add(new DataColumn("cPartNumber", typeof(string)));
        Sam_Result_DT.Columns.Add(new DataColumn("cPartName", typeof(string)));
        foreach (string l_srt in l_strValueSplit)
        {
            Sam_Result_DT.Columns.Add("" + l_srt + " Qty", typeof(string));
        }
       // g_strStructureId = "22~41~42928";
        string[] l_StuID = g_strStructureId.Split('~');
        First_StuID = l_StuID[0];

        for (int i = 0; i < l_StuID.Length; i++)
        {
            string li_StuID = l_StuID[i];
            GetPartNumber(li_StuID);
        }
        grdlist.Visible = true;
        grdlist.DataSource = Sam_Result_DT;
        grdlist.DataBind();


    }
}
